Crate cw_multi_test[−][src]
Expand description
Multitest is a design to simulate a blockchain environment in pure Rust. This allows us to run unit tests that involve contract -> contract, and contract -> bank interactions. This is not intended to be a full blockchain app but to simulate the Cosmos SDK x/wasm module close enough to gain confidence in multi-contract deployements before testing them on a live blockchain.
To understand the design of this module, please refer to ../DESIGN.md
Modules
Structs
Router is a persisted state. You can query this. Execution generally happens on the RouterCache, which then can be atomically committed or rolled back. We offer .execute() as a wrapper around cache, execute, commit/rollback process.
Utility to build App in stages. If particular items wont be set, defaults would be used
Wraps the exported functions from a contract and provides the normalized format Place T4 and E4 at the end, as we just want default placeholders for most contracts that don’t have sudo
Enums
We use it to allow calling into modules from another module in sudo mode. Things like gov proposals belong here.
Traits
Functions
Creates new default App
implementation working with customized exec and query messages.
Outside of App
implementation to make type elision better.
Type Definitions
Type alias for default build App
to make its storing simpler in typical scenario
This is essential to create a custom app with custom handler. let mut app = BasicAppBuilder::<E, Q>::new_custom().with_custom(handler).build();